#include    <stdio.h>
#include    <stdlib.h>
#include    <utmp.h>
#include    <fcntl.h>
#include    <unistd.h>

#define SHOWHOST    

int show_info( struct utmp *utbufp )
{
printf("%-8.8s", utbufp->ut_name);  
printf(" ");                
printf("%-8.8s", utbufp->ut_line);  
printf(" ");                
printf("%10ld", utbufp->ut_time);   
printf(" ");                
#ifdef  SHOWHOST
printf("(%s)", utbufp->ut_host);    
#endif
printf("\n");               

return 0;
}
int main()
{
struct utmp  current_record;    
int     utmpfd;     
int     reclen = sizeof(current_record);

if ( (utmpfd = open(UTMP_FILE, O_RDONLY)) == -1 ){
    perror( UTMP_FILE );    
    exit(1);
}
while ( read(utmpfd, &current_record, reclen) == reclen )
    show_info(&current_record);
close(utmpfd);
return 0;           
}


